<?php

namespace app\common\model;

use app\common\Base;
use app\common\validate\CateValidate;
use think\Model;

class Cate extends Model
{
    //引入特性
    use Base;

    //查询分类及子分类
    public function getCate()
    {
        //return $this->where(['pid'=>$pid])->selectOrFail();
        $rows = $this->selectOrFail();
        return tree($rows);
        //return $rows;
    }

    //保存新建分类
    public function saveCate($arr)
    {
        //判断分类名的合法性
        $vali = new CateValidate();
        $re = $vali->check($arr);
        if($re !== true){
            return $vali->getError();
        }
        if($arr['pid'] != 0){
            if($this->find($arr['pid'])){//存在
                return $this->saveOne($arr);
            }else{//不存在
                return '所属父分类不存在';
            }
        }else{//一级分类
            return $this->saveOne($arr);
        }
    }

    //保存编辑分类
    public function updateCate($arr,$id)
    {
        //判断分类名的合法性
        $vali = new CateValidate();
        $re = $vali->check($arr);
        if($re !== true){
            return $vali->getError();
        }
        if($arr['pid'] != 0){
            if($this->where('pid',$arr['pid'])->find()){//存在
                return $this->editOne($arr,$id);
            }else{//不存在
                return '所属父分类不存在';
            }
        }else{//一级分类
            return $this->editOne($arr,$id);
        }
    }
}
